package com.project.service;

import com.project.bean.OrderBean;
import com.project.bean.PageBean;

public interface IOrderService {
	/**
	 * 查询单个订单
	 * @param orderId
	 * @return
	 */
	public OrderBean findById(int orderId);
	/**
	 * 添加订单（学员申请预约，只需要传一个含有state=1和lId的OrderBean）
	 * @param order
	 * @return
	 */
	public int addOrder(OrderBean order);
	/**
	 * 拒绝订单（用于教练拒绝预约，直接删除预约）
	 * @param orderId
	 * @param state
	 * @return
	 */
	public int refuseOrder(int orderId);
	/**
	 * 修改订单状态（需要传一个含有oId、oState和lId的OrderBean）
	 * 已预约传2，修改o_price为l_price，修改lesson状态为2，
	 * 取消传3，修改lesson状态为1
	 * 作废传4，修改lesson状态为2
	 * @param orderId
	 * @param state
	 * @return
	 */
	public int changeState(OrderBean order);
	/**
	 * 修改订单状态为付款中（需要传一个含有oId、oState=5的OrderBean）
	 * @param orderId
	 * @param lId
	 * @return
	 */
	public int payOrder(OrderBean order);
	/**
	 * 修改订单状态为已完成（需要传一个含有oId、oState=6、oPrice和oComment的OrderBean）
	 * 学员余额减少，教练余额增加
	 * @param orderId
	 * @param lId
	 * @return
	 */
	public int completeOrder(OrderBean order);
	/**
	 * 学员查询所有订单，
	 * @param sId
	 * @param page
	 * @param size
	 * @param state 根据状态分类
	 * @return
	 */
	public PageBean findAllToPageByStu(int sId,int page,int size,int state);
	/**
	 * 教练查询所有订单，
	 * @param cId
	 * @param page
	 * @param size
	 * @return
	 */
	public PageBean findAllToPageByCoach(int cId,int page,int size,int state);
}
